package com.chen.controllers;



import net.paoding.rose.web.annotation.Path;
import net.paoding.rose.web.annotation.rest.Get;
import net.paoding.rose.web.portal.Portal;
import net.paoding.rose.web.portal.PortalSetting;

/**
 * 我在controllers下创建了windows包来放portal页面的没一个窗口 注意:如果这里起名字叫做windows 那么views 目录下
 * 放窗口的目录也必须叫windows（可以换成别的名字）
 * 
 * @author ninja.hzw
 */
@Path("portal")
public class PortalController {
	// 标注@Get,表示这个方法要处理的是对/portal的GET请求
	// 在主控控制方法上声明Portal参数即表示这个页面是portal，就这样!
	@Get
	@PortalSetting(timeout = 1000)
	public String home(Portal portal) throws Exception {
		// 是不是同时进行 超时 并发
		portal.addWindow("exception_test", "/windows/exceptionTest");
		// 使用addWindow向这个portal页面加入各种子信息(我们称为窗口)
		// 第一个参数为此window的名字（必须和页面上调用的窗口明相同）
		// 第二个参数为页面文件的路径，其中“/docin” 与path为“docin”的controller相对应。
		portal.addWindow("docin", "/windows/docin");
		// 第一个参数是用于标识该窗口，使得portal页面中可以引用到这个窗口的html
		// 第二个参数表示这个窗口的地址(可以包含参数)，这个地址等价于forward的地址(也就是这里只要能forward的地址都可以，无论是否是rose框架的，甚至可以是一个jsp页面)
		// 因此，地址没有说一定要以"/windows"开始
		portal.addWindow("ninja", "/windows/ninja");
		// 测试传参 这里不光把test 的参数传到testParameter 还会把当前request 所带的参数都传过去
		// 测试异常处理
		portal.addWindow("testParameter",
				"/windows/testParameter?movie=举起手来&test=tests");
		return "portal_page";
	}
}